!!!! Business_Cycles_Insurance Parameters - (10/8/2024) !!!!
!! Parameters used in "The Impact of Unemployment Insurance and Unsecured Credit on Business Cycles"

module BCI_Par

implicit none

private

public rp, nt, na, nd, ne, nj, nR, ns, nn, nb, nz, nk, nl, ni, nm, no, nh, beta_h, beta_l, pi_beta, chi_w, chi_s, chi_b, delta, e_bar, y_bar, y_r, z_g, z_b, lambda_g, lambda_b, xi_g, xi_b, iota_g, iota_b, sigma, alpha, tau, theta, rho, sigma_eta_g, sigma_eta_b, rho_g, rho_b, nu_1, nu_2, phi, phi_e, upsilon_dg, upsilon_db, upsilon_rg, upsilon_rb, upsilon_bar_g, upsilon_bar_b, zeta, np, max_iter, one, zero, disutility, precision, precision_mu, a_min, a_max

!!!! Double Precision !!!!
integer, parameter :: rp=selected_real_kind(15,307) 

!!!! Calibrated Parameters !!!!
real(rp), parameter :: beta_h = 0.99045_rp
real(rp), parameter :: beta_l = 0.8569_rp
real(rp), parameter :: pi_beta = 0.501_rp
real(rp), parameter :: chi_w = 0.136_rp
real(rp), parameter :: chi_s = 0.136_rp
real(rp), parameter :: chi_b = 1.201_rp
real(rp), parameter :: delta = 0.01971_rp
real(rp), parameter :: e_bar = 3.970_rp
real(rp), parameter :: y_bar = 0.345_rp         ! 'T' in paper
real(rp), parameter :: y_r = 0.35_rp*e_bar

!!!! Cyclical Fluctuations - Calibrated !!!!
real(rp), parameter :: z_g = 1.0_rp
real(rp), parameter :: z_b = 0.9715_rp
real(rp), parameter :: lambda_g = 0.65_rp
real(rp), parameter :: lambda_b = 0.4805_rp
real(rp), parameter :: xi_g = 0.0398_rp
real(rp), parameter :: xi_b = 0.0485_rp
real(rp), parameter :: iota_g = 0.0205_rp
real(rp), parameter :: iota_b = 0.0205_rp

!!!! UI Policies !!!!
real(rp), parameter :: upsilon_dg = 0.50_rp
real(rp), parameter :: upsilon_db = 0.333333_rp                 !Benchmark UI Extension Policy
real(rp), parameter :: upsilon_rg = 0.50_rp
real(rp), parameter :: upsilon_rb = 0.53_rp                     !Used in UI Level Increase Policy
real(rp), parameter :: upsilon_bar_g = 0.42_rp*e_bar
real(rp), parameter :: upsilon_bar_b = 0.4452_rp*e_bar          !Used in UI Level Increase Policy

!!!! Indices !!!!
integer, parameter :: nt=2300
integer, parameter :: na=250
integer, parameter :: nd=50
integer, parameter :: ne=11
integer, parameter :: nj=160
integer, parameter :: nR=40
integer, parameter :: ns=2
integer, parameter :: nn=3
integer, parameter :: nb=2
integer, parameter :: nz=2
integer, parameter :: nk=7
integer, parameter :: nl=7
integer, parameter :: ni=ne*nn*nb
integer, parameter :: nm=nz*nk*nl
integer, parameter :: no=40
integer, parameter :: nh=500

!!!! Exogenous Parameters !!!!
real(rp), parameter :: sigma = 2.0_rp
real(rp), parameter :: alpha = 0.35_rp
real(rp), parameter :: tau = 0.30_rp
real(rp), parameter :: theta = 0.025_rp
real(rp), parameter :: rho = 0.989_rp
real(rp), parameter :: sigma_eta_g = sqrt(0.01062_rp)
real(rp), parameter :: sigma_eta_b = sqrt(0.01062_rp)
real(rp), parameter :: rho_g = 0.964_rp
real(rp), parameter :: rho_b = 0.783_rp
real(rp), parameter :: nu_1 = 0.04576_rp
real(rp), parameter :: nu_2 = -0.000936_rp
real(rp), parameter :: phi = 1.0_rp/200.0_rp
real(rp), parameter :: phi_e = 0.8579_rp
real(rp), parameter :: zeta = 1600.0_rp

!!!! Parameters for Solving the Model !!!!
integer, parameter :: np = 14
integer, parameter :: max_iter = 100
real(rp), parameter :: one = 1.0_rp
real(rp), parameter :: zero = 0.0_rp
real(rp), parameter :: disutility = -1000000000.0_rp
real(rp), parameter :: precision = 0.0001_rp
real(rp), parameter :: precision_mu = 0.0000000000001_rp

!!!! Parameters for Grid Ranges !!!!
real(rp), parameter :: a_min = -9.0_rp
real(rp), parameter :: a_max = 650.0_rp

end module BCI_Par